import { TASK_PRIORITY, TASK_STATUS, TASK_TYPE } from '@/enums'

/**
 * ### 待办事项 TaskItem
 */
export interface TaskItem {
  /** 任务唯一标识符 */
  id: string

  /**
   * 任务类型 / 分类
   * 可选值：'work' 工作 | 'study' 学习 | 'life' 生活 | 'focus' 专注 | 其他自定义字符串
   */
  type: TASK_TYPE

  /** 任务标题 */
  title: string

  /** 任务详细描述，可选 */
  description?: string

  /** 任务优先级，可选值：'low' | 'medium' | 'high' 或数字 */
  priority: TASK_PRIORITY

  /** 任务截止日期，可选 */
  dueDate?: Date

  /** 任务开始日期，可选 */
  // startDate?: Date

  /** 提醒时间，可支持多个提醒 */
  // reminders?: Date[]

  /** 任务预计耗时（单位：分钟） */
  // estimatedTime?: number

  /** 任务当前进度，范围 0-100 */
  progress: number

  /**
   * 任务状态
   * 'not started' 未开始
   * 'in progress' 进行中
   * 'paused' 暂停
   * 'completed' 已完成
   * 'canceled' 已取消
   */
  status: TASK_STATUS

  /** 子任务列表，可选 */
  children?: TaskItem[]

  /**
   * 专注模式相关信息，可选
   * - startTime: 专注开始时间
   * - endTime: 专注结束时间，可选
   * - completedPomodoros: 已完成番茄钟数量
   */
  focusSession?: {
    startTime: Date
    endTime?: Date
    completedPomodoros: number
  }

  /** 任务创建时间 */
  createdAt: Date

  /** 任务更新时间 */
  updatedAt: Date
}
